package com.pig4cloud.pig.iotData.utils;

import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

public class ByteToMultipartFileUtil implements MultipartFile {
	private final byte[] content;
	private final String name;
	private final String originalFilename;
	private final String contentType;

	public ByteToMultipartFileUtil(byte[] content, String name, String originalFilename, String contentType) {
		this.content = content;
		this.name = name;
		this.originalFilename = originalFilename;
		this.contentType = contentType;
	}

	@Override
	public String getName() {
		return name;
	}

	@Override
	public String getOriginalFilename() {
		return originalFilename;
	}

	@Override
	public String getContentType() {
		return contentType;
	}

	@Override
	public boolean isEmpty() {
		return content.length == 0;
	}

	@Override
	public long getSize() {
		return content.length;
	}

	@Override
	public byte[] getBytes() throws IOException {
		return content;
	}

	@Override
	public InputStream getInputStream() throws IOException {
		return new ByteArrayInputStream(content);
	}

//	@Override
//	public Resource getResource() {
//		return MultipartFile.super.getResource();
//	}

	@Override
	public void transferTo(File dest) throws IOException, IllegalStateException {
		// 实现文件的保存操作，可根据具体需求自行实现
		FileCopyUtils.copy(this.content, dest);
	}

//	@Override
//	public void transferTo(Path dest) throws IOException, IllegalStateException {
//		MultipartFile.super.transferTo(dest);
//	}
}